import axios from 'axios'

/**
 * 下载文件
 * @param {*} url 下载文件地址
 * @param {*} name 下载的文件名
 */
export const downloadFile = (url, name) => {
  axios({
    method: 'get',
    url,
    responseType: 'blob'
  }).then((res) => {
    // 这里 data 是返回来的二进制数据
    const blob = new Blob([res.data], {
      type: 'application/octet-stream'
    })
    // 创建一个blob的对象链接
    const blobURL = window.URL.createObjectURL(blob)
    const link = document.createElement('a')
    link.href = blobURL
    link.style.display = 'none'
    // 把获得的blob的对象链接赋值给新创建的这个 a 链接
    link.setAttribute('download', name) // 设置下载文件名
    document.body.appendChild(link)
    // 使用js点击这个链接
    link.click()
    document.body.removeChild(link) // 下载完成移除元素
    window.URL.revokeObjectURL(blobURL) // 释放blob对象
  })
}
